home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / debugger / ddd-1.000 / ddd-1 / ddd-1.4b / FAQ < prev    next >
Encoding:
Text File  |  1995-12-27  |  7.3 KB  |  180 lines

  1. DDD Frequently Asked Questions                                  -*- text -*-
  2. ******************************
  3.  
  4. 1.  Can I dereference a multi-length array graphically via the mouse?
  5.  
  6.     The problem is that GDB does not know the actual length of the
  7.     array; you have to supply it by hand (i.e. using the keyboard).
  8.     You can use the DDD ``display successive array elements`` or the
  9.     GDB ``artificial array'' mechanism.  If you have a pointer, say:
  10.     
  11.         int *pi;
  12.     
  13.     pointing to an array of 10 ints, you can see the integers by
  14.     entering
  15.     
  16.         graph display pi[0..9]
  17.     
  18.     at the `(gdb)' prompt (or entering `pi[0..9]` in the `Dependent
  19.     Display' dialog).
  20.     
  21.     As an alternative, you can use the GDB ``artificial array'' mechanism
  22.     by entering
  23.     
  24.         graph display pi[0]@10
  25.     
  26.     This will create an array starting with pi showing the first 10
  27.     elements.
  28.  
  29.  
  30. 2.  Does DDD sit on top of GDB, or is it integrated with gdb source?
  31.  
  32.     DDD sits on top of a separate GDB process.  Use `ddd --trace' to
  33.     see the interaction.
  34.  
  35.  
  36. 3.  If it sits on top, how can GDB upgrades be incorporated?
  37.  
  38.     By getting and installing the new GDB.  No changes to DDD are
  39.     necessary, unless the GDB developers introduce incompatible
  40.     changes - in which case you'll have to wait until we patch DDD.
  41.  
  42.  
  43. 4.  Does DDD work with DBX on other systems than Sun?
  44.  
  45.     DDD has been reported to run with Sun DBX as shipped with SunOS
  46.     4.x (aka Solaris 1.x) and SunOS 5.x (aka Solaris 2.x).
  47.     Unfortunately, DBX is quite different across machines since every
  48.     vendor icorporated his own extensions.  As long as some basics
  49.     stay the same, DDD may work more or less with other DBX versions
  50.     as well.  If not, extending the DDD code to support other DBX
  51.     versions should not be too difficult.  Use `ddd --trace' to see
  52.     the interaction.
  53.  
  54.  
  55. 5.  I don't like the 'break point' symbol.  Can I change it?
  56.  
  57.     Yes.  See the various `*.xbm' files in the DDD source code.
  58.  
  59.  
  60. 6.  I compiled DDD on my machine and it fails.  I got the executable
  61.     from an FTP site and it runs.  What is the difference? Is there
  62.     some compilation setup I need to do, or is the executable patched?
  63.  
  64.     It is a frequently observed effect that our executables work while
  65.     the executables of DDD users fail.  This is simply due to the fact
  66.     that we test them throroughly.  The usual test a new DDD
  67.     distribution has to pass is to configure, compile, and run
  68.     out-of-the-box on half a dozen machines and configurations.
  69.     
  70.     We do not really know why our executables work while others fail,
  71.     although the source code is identical.  A simple explanation may
  72.     be that the compilation environment (C compiler, C++ compiler,
  73.     libraries...) have slight differences (aka bugs) from site to
  74.     site.  We have set up DDD such that it works on our site - for
  75.     instance, some DDD parts work around compiler bugs detected on a
  76.     specific machine.  Users compiling DDD on their local machine will
  77.     encounter other problems, but will not know how to fix them.  That
  78.     is, while the DDD code stays the same, the executables may vary a
  79.     lot.
  80.  
  81.  
  82. 7.  I have heard that there is a magic command built into DDD.
  83.     Is this true, and what is this magic command for?
  84.  
  85.     It's an adventurer's secret.  Use the source, Luke.
  86.  
  87.  
  88. 8.  Is there an Athena Widgets port of DDD?
  89.  
  90.     No.  If you want DDD running with a free widget set, you should
  91.     support the LessTif team, who are developing a free
  92.     Motif-compliant widget set.  Check out their WWW page at
  93.     
  94.         http://www.hungry.com:8000/products/lesstif/
  95.  
  96.     [Note: We HAVE considered to build DDD on a free widget set.  But
  97.     Athena is definitively not powerful enough, and alternative
  98.     approaches like Tcl/Tk did not provide the necessary asynchronous
  99.     interprocess communication facilities required to build an
  100.     efficient interface.  So go and support the LessTif team instead.]
  101.  
  102.  
  103. 9.  DDD reports `imake' and/or `xmkmf' problems when being started.
  104.     How come?
  105.  
  106.     To run properly, OSF/Motif requires a file called `XKeysymDB' in
  107.     the X project root.  Since we distribute DDD binaries, the X
  108.     project root compiled into the X libraries (and thus hard-coded in
  109.     the DDD binary) may not be valid on the actual machine.  DDD tries
  110.     to repair this situation by calling `xmkmf' and thus determining
  111.     the X project root.  Usually, this is not required if DDD runs on
  112.     the machine it was compiled on.  You may run `ddd
  113.     --check-configuration' to find out why DDD finds it necessary to
  114.     determine the X project root.  The code for this hack can be found
  115.     in `xconfig.C'.
  116.  
  117.  
  118. 10. How can I change DDD resources (especially colors)?
  119.  
  120.     Copy the appropriate resource lines from the `Ddd' file contained
  121.     in the DDD distribution (type `./configure -v; cd ddd; make Ddd'
  122.     to create it from scratch) in your `~/.dddinit' file.  For
  123.     instance, to make the background less bright as in DDD 1.2 and
  124.     before, insert the following lines in `~/.dddinit':
  125.  
  126.         Ddd*XmText.background:          light grey
  127.         Ddd*XmTextField.background:     light grey
  128.         Ddd*GraphEdit.background:       light grey
  129.         Ddd*XmList.background:          light grey
  130.  
  131.     To set up the size and the placement of the DDD main windows, use:
  132.  
  133.         Ddd*command_shell.geometry:     +0+0
  134.         Ddd*source_view_shell.geometry: +0+220
  135.         Ddd*data_disp_shell.geometry:   +0+670
  136.  
  137.     (or similar values - see the X(1) manual page for details on
  138.      geometry specifications)
  139.  
  140.  
  141. 11. I want to use DDD interprocess communication in my own
  142.     application.  How do I proceed?
  143.  
  144.     There is a demonstration program named `ttytest' in the DDD
  145.     package.  Just type `make ttytest'.  It should be relatively
  146.     easy to customize this application.
  147.  
  148.     Here are some pointers: If you want to talk with a separate
  149.     process, use the `TTYAgent' class, as defined in `TTYAgent.C'.
  150.     Using the `write' method, you can send arbitrary data to GDB; you
  151.     can define an `Input' handler that will be called each time GDB
  152.     sends you data.  The header files of `TTYAgent' and its
  153.     superclasses should contain sufficient information.  As all
  154.     communication is handled asynchronously, you can realize a usual
  155.     Xt-based interface using Athena widgets, Motif widgets, or another
  156.     Xt-based toolkit.
  157.  
  158.  
  159. 12. I want to use the DDD graph editor in my own application.
  160.     How do I proceed?
  161.  
  162.     There is a demonstration program named `test-graph' in the DDD
  163.     package.  Just type `make test-graph'.  It should be relatively
  164.     easy to customize this application.
  165.  
  166.     Here are some pointers: The `GraphEdit' widget, as defined in
  167.     `GraphEdit.h' contains the DDD graph editor.  Variants with Athena
  168.     panners and Motif scrollbars are found in `PannedGE.h' and
  169.     `ScrolledGE.h', respectively.  The `GraphEdit' widget works on a
  170.     `Graph' structure, which is defined in `Graph.h'; a graph is
  171.     composed of nodes and edges, both forming class hierarchies whose
  172.     top classes are defined in `GraphNode.h' and `GraphEdge.h',
  173.     respectively.  The graph nodes in DDD are Box graph nodes, defined
  174.     in `BoxGraphN.h'; a box is a (possibly structured) rectangular
  175.     entity holding strings, lines, or figures.  See also the DDD paper
  176.     `doc/ddd-paper.ps' for details on boxes and how they are composed.
  177.  
  178.  
  179. $Id: FAQ,v 1.15 1995/12/27 11:12:39 zeller Exp $
  180.